package session.stateless.SCM;

import entity.SCM.ProductBalance;
import java.util.List;
import javax.ejb.Local;
import entity.SCM.DeliveryOrder;
import entity.SCM.PackingOrder;
import entity.SCM.PickingOrder;
import entity.SCM.ProductLine;
import entity.SCM.ShippingOrder;
import javaclass.ProductType;

@Local
public interface DeliveryOrderBeanLocal {
    
    public List<ProductBalance> getProduct();
    
    public Long createDeliveryOrder(Long saleOrderId, List<ProductLine> productLines);
    
    public ProductLine createProductLine(ProductType producType, Long quantity, Double finalPrice);
    
    public List<DeliveryOrder> getDeliveryOrder();
    
    public List<DeliveryOrder> getSuccessDeliveryOrder();
    
    public boolean processDeliveryOrder(Long diliveryOrderId);
    public boolean processPickingOrder(Long pickingId);
    public boolean processPackingOrder(Long packingId);
    public boolean processShippingOrder(Long shippingId);
    
    public boolean deletedDeliveryOrder(Long diliveryOrderId);
    public boolean deletedPickingOrder(Long pickingId);
    public boolean deletedPackingOrder(Long packingId);
    public boolean deletedShippingOrder(Long shippingId);
    
    public List<PickingOrder> getPickingOrder();
    public List<PackingOrder> getPackingOrder();
    public List<ShippingOrder> getShippingOrder();

    public List<DeliveryOrder> getPendingDeliveryOrder();
    public List<PickingOrder> getPendingPickingOrder();
    public List<PackingOrder> getPendingPackingOrder();
    public List<ShippingOrder> getPendingShippingOrder();

    public Long quantityNeedToDelivery(Long saleOrderId, ProductType productType);
    
}
